package parallel.project.solver;


public interface SolverSlave extends Runnable 
{
	/**
	 * Alerts the {@link SolverMaster} over this slave, and any other
	 * listeners, to some event that has taken place.  Such events could
	 * be: an update of the slave location and where it is going, that
	 * it solved the maze, that it completed a graph of the maze, etc..
	 * This should only be called by the slave itself
	 * 
	 * @param e
	 * 		Event that will be sent to all listeners
	 */
	public void fireNotification(SlaveNotificationEvent e);
	
	/**
	 * Tells this slave to stop traversing the {@link Graph} and die 
	 * ASAP.
	 */
	public void stop();
}
